﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using RegistroClientes.Dominio;
using RegistroClientes.Persistencia;

namespace RegistroClientes
{
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de clase "RegistroHorario" en el código, en svc y en el archivo de configuración a la vez.
    public class RegistroHorario : IRegistroHorario
    {
        private HorarioDAO horarioDAO = null;
        private HorarioDAO HorarioDAO
        {
            get
            {
                if (horarioDAO == null)
                    horarioDAO = new HorarioDAO();
                return horarioDAO;
            }

        }

        public Horario CrearHorario(string dia, string hora, string disponible, string nrocancha)
        {
            Horario HorarioACrear = new Horario()
            {
                Dia = dia,
                Hora = hora,
                Disponible = disponible,
                NroCancha = nrocancha

            };
            return HorarioDAO.Crear(HorarioACrear);
        }

        public Horario ObtenerHorario(int codigo)
        {
            return HorarioDAO.Obtener(codigo);
        }

        public Horario ModificarHorario(int codigo, string dia, string hora, string disponible, string nrocancha)
        {
            Horario horarioAModificar = new Horario()
            {
                Codigo = codigo,
                Dia = dia,
                Hora = hora,
                Disponible = disponible,
                NroCancha = nrocancha
            };
            return HorarioDAO.Modificar(horarioAModificar);
        }

        public void EliminarHorario(int codigo)
        {
            Horario horarioExistente = HorarioDAO.Obtener(codigo);
            HorarioDAO.Eliminar(horarioExistente);
        }

        public List<Horario> ListarHorarios()
        {
            return HorarioDAO.ListarTodos().ToList();
        }
    }
}
